In a computing system, a central processing unit (“CPU”) communicates with the memory modules, e.g., dual in-line memory modules (“DIMMs”), which provide system memory for the computing system, over memory channels. Each memory channel may be implemented as a data and control bus that communicatively couples a DIMM socket on the computing system motherboard (alternatively referred to as the mainboard or system board) to a memory controller integrated with or in communication with the CPU. The memory controller interface, furthermore, may support multiple memory channels, each of which may communicate with the memory controller concurrently. Each DIMM socket, however, typically communicates with the memory controller via a single memory channel. When a DIMM is active in the computing system, it communicates with the memory controller and CPU via the single memory channel corresponding to the DIMM socket in which the DIMM is installed.
Within a computing system, overall memory bandwidth between the CPU and system memory is based on the combined bandwidth of the utilized memory channels. The memory bandwidth of a channel, meanwhile, is based on the data “width” of the channel and the frequency with which data may be transmitted over the channel. While the bandwidth of individual memory channels, and thus the overall memory bandwidth of the computing system, can be improved (e.g., by increasing the frequency of the channel), the ability to improve the bandwidth of individual memory channels is limited (for example, memory can only operate up to particular frequencies before the memory ceases to function properly). As a result, improvements in the overall memory bandwidth of a system are typically achieved by utilizing more of the memory channels available in the system. That is, for example, by moving from the utilization of one memory channel to two memory channels in a computing system, the computing system is expected to achieve a 2X increase in overall memory bandwidth. Because each DIMM only communicates over a single memory channel, however, increasing system memory bandwidth by utilizing more memory channels necessitates adding additional DIMMs to the computing system.
There are various shortcoming that arise from using additionally installed DIMMs to improve a system's overall memory bandwidth. For example, each DIMM costs money, thereby increasing the cost of the computing system. The continued use of each additional DIMM may also contribute to other shortcomings, such as greater power consumption and increased cooling needs. Furthermore, each additional DIMM creates an additional point of failure during the operation of the computing system. And in many cases, due to increases in DIMM capacity, the additional memory provided by the additional DIMMs are not necessary for the system, and therefore do not offset the noted shortcomings. It would therefore be beneficial to improve the overall memory bandwidth of a computing system without requiring the utilization of additional DIMMs in the system.
The techniques introduced here may be better understood by referring to the following Detailed Description in conjunction with the accompanying drawings, in which like reference numerals indicate identical or functionally similar elements.